package com.tenbit.tbw.dao;

import java.util.List;
import java.util.Map;

import com.tenbit.tbw.vo.BON1010VO;
import com.tenbit.tbw.vo.SYS1010VO;

/**
 * CodeBook 조회 입력 수정 삭제DAO <br>
 * <PRE>
 * System Name : 텐비트 워크샵
 * Business Name : 시스템(SYS)
 * Author : 김창섭
 * Class Name(en) : CodeBookManagementEDAO.java
 * Class Name(ko) : 코드북관리DAO
 * Description  : 코드북 조회, 입력,수정,삭제,데이터 유효성 검토
 * Modification History
 *     수정일         수정자     수정내용
 *    ------------  -------  ---------------------------
 *    2014.04.29.   김창섭   	 최초 생성
 *    2014.04.29.	김창섭           BON1010SVCImpl 구현
 * </PRE>
 */
public interface CodeBookManagementEDAO {
	/**
	  * 분류코드명 조회
	  * @param   paramMap codeType:분류코드, codeName:코드명
	  * @return  List<SYS1010VO> codeType:분류코드, codeDetail:상세코드, codeName:코드명
	  */
	public List<SYS1010VO> listCodeType(Map<String, Object> paramMap) throws Exception;
	/**
	  * 분류코드로 상세코드명 조회
	  * @param   paramMap codeType:분류코드
	  * @return  List<SYS1010VO> codeType:분류코드, codeDetail:상세코드, codeName:코드명, sortOrder:정렬순서
	  */
	public List<SYS1010VO> listCodeDetail(Map<String, Object> paramMap) throws Exception;
	/**
	  * 코드명으로 상세 코드 조회
	  * @param   paramMap codeType:분류코드, codeName:코드명
	  * @return  List<SYS1010VO> codeType:분류코드, codeDetail:상세코드, codeName:코드명, sortOrder:정렬순서
	  */
	public List<SYS1010VO> listCodeName(Map<String, Object> paramMap) throws Exception;
	/**
	  * 코드북 Update 시  코드명 중복검사
	  * @param   paramMap codeName:코드명
	  * @return  Integer
	  */
	public int codeName(Map<String, Object> paramMap) throws Exception;
	/**
	  * 데이터 유효성 검사 시 사용  Insert,Update 시 중복 검사
	  * @param   paramMap codeType:분류코드, codeDetail:상세코드
	  * @return  integer  
	  */
	public int checkSetCodeDetail(Map<String, Object> paramMap) throws Exception;
	/**
	  * 코드북 insert
	  * @param   Map codeType:분류코드, codeDetail:상세코드, codeName:코드명, sortOrder:정렬순서
	  * @return  Integer
	  */
	public int insCodeBook(Map<String, Object> paramMap) throws Exception;
	/**
	  * 코드북 update 
	  * @param   Map codeType:분류코드, codeDetail:상세코드, codeName:코드명, sortOrder:정렬순서
	  * @return  Integer
	  */
	public int setCodeBook(Map<String, Object> paramMap) throws Exception;
	/**
	  * 코드북 delete 분류 코드 및 상세 코드 삭제
	  * @param   Map codeType:분류코드
	  * @return  Integer
	  */
	public int delCodeBook(Map<String, Object> paramMap) throws Exception;
	/**
	  * 코드북 delete 상세코드 삭제
	  * @param   Map codeType:분류코드, codeDetail:상세코드
	  * @return  Integer
	  */
	public int delCodeBook2(Map<String, Object> paramMap) throws Exception;
	/**
	  * 데이터 유효성 검사 시 사용 상세코드 Insert 시 분류코드 유무 확인
	  * @param   paramMap codeType:분류코드
	  * @return  integer  
	  */
	public int checkSetDetail(Map<String, Object> paramMap) throws Exception;
}
